function FilaModel(id, htmlLocalFila, scroller){
	this.id = id;
	this.usuarios = new Array();
	this.usuarioAtual = null;
	this.htmlLocalFila = htmlLocalFila;
	this.scroller = scroller;
	
	Object.defineProperties(this, {
		getUsuarioById: {
        	value: function(id){
        		for(var u in this.usuarios){
        			if(this.usuarios[u].id == id){
        				return this.usuarios[u];
        			}
        		}
        		return null;
			},
			enumerable: false
        },
        getUsuarioByLogin: {
        	value: function(login){
        		for(var u in this.usuarios){
        			if(this.usuarios[u].login == login){
        				return this.usuarios[u];
        			}
        		}
        		return null;
        	},
        	enumerable: false
        },
        removeUsuario: {
        	value: function(usuario){
        		var index = this.usuarios.indexOf(usuario);
        		if(index!=-1){
        			this.usuarios.splice(index,1);
        		}
        	},
        	enumerable: false
        },
        containsUsuario: {
        	value: function(usuario){
        		if(this.usuarios.indexOf(usuario)!=-1){
        			return true;
        		}else{
        			return false;
        		}
        	},
        	enumerable: false
        },
        addUsuario: {
        	value: function(usuario){
        		if(this.usuarios.indexOf(usuario)==-1){
        			this.usuarios.push(usuario);
        			this.htmlLocalFila.append(usuario.htmlInsereUsuarioFila());
        		}
        	},
        	enumerable: false
        },
        htmlInsereUsuarioFila: {
        	value: function(){
        		var html = '<div class="ld-user" data-prioritario="'+this._isPrioritario+'" data-login="'+this.login+'" data-id="'+this.id+'"  onselectstart="return false;">'+
        					'<div class="ld-user-top"><span class="ld-nome">'+this.nome+'</span><span class="ld-telefone">'+this.telefone+'</span></div>'+
        					'<div class="ld-user-middle"><h3 class="ld-senha">'+this.senha+'</h3></div><div class="ld-info hide"><span class="ld-hr-chegada">'+this.horarioChegada+'</span>'+
        					'<span class="ld-atendimento">'+this.isChamado+'</span></div></div>';
        		return html;
			},
			enumerable: false
        },
        atualizaUsuarios: {
        	value: function(){
        		var thisfila = this;
        		thisfila.htmlLocalFila.html("");
        		$.ajax({
            		url: $_pathApp+'fila/'+this.id+'/usuariosdafila',
            		type: 'GET',
            		complete: function(data){
            			var response = parseJSON(data.responseText);
            			for(var index in response){
            				var u = response[index];
            				var user = new UsuarioModel(u.usuario.id,u.usuario.nome,u.usuario.login,u.usuario.telefone,u.senha,u.isPrioritario,u.enumAtendimento,u.horarioChegada);
            				thisfila.addUsuario(user);
            			}
            			thisfila.scroller.personalizeScroll();
            		}
            	});
			},
			enumerable: false
        }
    });
}

FilaModel.prototype = {
	    get scroller(){
	    	return this._scroller;
	    },
	    set scroller(val){
	    	val.element = this.htmlLocalFila;
	        this._scroller = val;
	    },
	};